package com.groupname.dangerousdelves;

import sofia.app.Screen;

// -------------------------------------------------------------------------
/**
 * This is the interface from which the actual game will be implemented. It is
 * a generic interface that can be used with any game.
 *
 * @author Chris Fieldman (Chrisf90)
 * @version 2012.11.13
 */ public interface Game
 {
     //~-------------------------------------------------------------------------
     // Methods
     /**
      * Retrieves the user input handler.
      * @return The user input handler
      */
     //public Input getInput();

     // ----------------------------------------------------------
     /**
      * Retrieves the system that loads and saves files.
      * @return The File I/O system
      */
     public FileIO getFileIO();

     // ----------------------------------------------------------
     /**
      * Retrieves the graphics system.
      * @return The graphics system
      */
     //public Graphics getGraphics();    // Since all the graphics stuff is in
                                         // the sofia screen class I don't think
                                         // this is necessary.

     // ----------------------------------------------------------
     /**
      * Retrieves the audio system.
      * @return The audio system
      */
     public Audio getAudio();

     // ----------------------------------------------------------
     /**
      * Sets the current screen shown to the user.
      * @param screen The screen to show to the user
      */
     public void setScreen(Screen screen);

     // ----------------------------------------------------------
     /**
      * Retrieves the current screen.
      * @return The current screen
      */
     public Screen getCurrentScreen();

     // ----------------------------------------------------------
     /**
      * Gets the startup screen.
      * @return The startup screen
      */
     public Screen getStartScreen();
 }
